package java20190321;

import java.util.Scanner;

public class pratice2 {

	public static void main(String[] args) {
		
		int i1=10,i2=20;
		int i =(i2++);//++在i2后面，故先运算（赋值）在自增
		System.out.println("i="+i);
		System.out.println("i2="+i2);
		i=(++i2);//++在i2前故先自增在运算（赋值）
		System.out.println("i="+i);
		System.out.println("i2="+i2);
		i=(--i1);//--在i2后面，故先运算（赋值）在自减
		System.out.println("i="+i);
		System.out.println("i1="+i1);
		i=(i1--);//--在i2前故先自减在运算（赋值）
		System.out.println("i="+i);
		System.out.println("i1="+i1);
		
		System.out.println("10%3="+20%3);
		System.out.println("20%3="+10%3);
		
		int rst = (20%3)>1?-10:10;
		System.out.println("(20%3)>1?-10:10="+rst);
		
	/////////////////////////////////////////////////
		
		double engSalary = 0.0;//java工程师月薪
		int basSalary = 3000;  //底薪
		int comResult =100;   //月工作完成分数（最小值为0，最大值为150）
		double workDay =22;   //月实际工作天数
		double insurance =3000*0.105; //月应扣保险数	
		Scanner input = new Scanner(System.in); //从控制台获取输入对象
		System.out.println("请输入java工程师底薪：");
		basSalary = input.nextInt();//从控制台获取输入——底薪，赋值给basSalary
		System.out.println("请输入java工程师月工作完成分数(最小值为0，最大值为150）：");
		comResult = input.nextInt();//从工作台获取输入——月工作完成分数，赋值给comResult
		System.out.println("请输入java工程师月实际工作天数：");
		workDay = input.nextDouble();//从控制台获取输入——月实际工作天数，赋值给workDay
		System.out.println("请输入java工程师应扣保险数：");
		insurance = input.nextDouble();//从控制台获取输入——月应扣保险数，赋值给insurance
		
		//java工程师月薪= 底薪+底薪*25%*月工作完成分数/100+15*月实践工作天数-月应扣保险数
		engSalary =basSalary+basSalary*0.25*comResult/100+15*workDay-insurance;
		System.out.println("java工程师月薪为："+engSalary);
		///////////////////////////////////////////////////////////////////////////////
		int a =129;//二进制10000001
		int b =128;//二进制10000000
		System.out.println("a和b按位与的结果是："+(a&b));//按位与的结果为10000000
		System.out.println("a和b按位或的结果是："+(a|b));//按位或的结果为10000001
		//Integer.toBinaryString()方法是将数据按二进制格式输出
		//按位非的结果是：11111111111111111111111101111110
		System.out.println("a按位非的结果是："+Integer.toBinaryString((~a)));
		System.out.println("a和b按位异或的结果是："+(a^b));//按位与的结果为00000001
		
		int c = 5;
		//用性能做好的方法计算5*8的结果
		int rst6 =c<<3;
		//整数每左移一位，相当于*2，左移三位相当于*8,因为仅仅是位移，所以速度快
		System.out.println("5左移三位的结果是："+rst6);
		
		
		
		
		

	}

}
